﻿<?php
    //用户登录

    ob_clean();//清除缓存
    //用户登录
  if(!empty($_POST)){// 判断一个变量不为空

    //优化2、在记住我的状态下实现随意输入登录失败
    // 从$_POST中获取提交的变量存储在临时变量中
    $username=$_POST['email'];
    //如果满足这个条件 说明优化手动输入了正确的密码
    if(!empty($_COOKIE['email'])&&$_COOKIE['password']==md5($_POST['password']))
    {
      $password=$_COOKIE['password'];
    }
    //如果满足这个条件 说明用户是直接使用记住我的状态下登录的并没有输入密码
    else if(!empty($_COOKIE['email'])&&$_COOKIE['password']==$_POST['password'])
    {
      $password=$_COOKIE['password'];
    }else if(empty($_COOKIE['email']))//当清空了COOKIE里的数据时，使用户输入的密码与数据库加密的密码值一致
    {
      $password=md5($_POST['password']);
    }else{
      echo '<script>alert("用户名或密码错误");history.go(-1);</script>';die;
    }

    // 编写查询语句
    // 注意引号`admin`和'$username'，表名和字段名用``,变量名用''。
    // 变量只能作用于当前页面
    $sql="select * from `user` where `userName`='$username' and `userPassword`='$password'";

    // 执行sql
    $result=mysqli_query($link,$sql); //结果集  表示查询到的结果有很多条记录。只有执行了查询语句才有


    //从查询到的结果集中提取到真实的数据，提取一条数据
    $data=mysqli_fetch_assoc($result);
    //print_r($data);die;


  //判断变量是否为空来提示登录是否成功
  if(!empty($data))
  {
    // 向session存储用户信息
    $_SESSION['zql']=$data;//user为存储的下标

    //判断用户是否勾选了记住我
      if(!empty($_POST['check'])){
        //如果如果勾选将用户信息保存在cookie中,保存时间为一天
        setcookie('email',$email,time()+3600*24);
        setcookie('password',$password,time()+3600*24);
        //print_r($_COOKIE);
      }else{
        //用户取消记住我则清空用户信息，将值设值为空，有效时间设值为0
        setcookie('email','',0);
        setcookie('password','',0);
      }

      //判断用户是否勾选了自动登录
      if (!empty($_POST['auto'])) {
        setcookie('auto_login',1,time()+3600*24);//勾选了显示1
      }else{
        setcookie('auto_login',0,0);//未勾选了显示0
      }

      echo '<script>alert("登录成功");location.href="index.php?home=1&c=index&a=index"</script>';die;
    }else{
      echo '<script>alert("用户名或密码错误");history.go(-1);</script>';die;
    }
  }

    //加载前台公共视图
    include (VIEW_PATH.$admin.'layout.html');

 ?>
